Punto 1

Parte 1

Cargar las librerías a utilizar

library(shiny)
library(plotly)
library(dplyr)
library(tidyverse)
library(polycor)
library(lubridate)
library(tidyr)
## Framework for Financial Data Extracting and modeling
library(quantmod)

Cargar los datos necesarios

Lectura y creación de los DataFrames mediante conexion a Yahoo Finance, para este punto se cargarn los datos de la TRM y el valor del petroleto WTI

TRM <- getSymbols("USDCOP=X",auto.assign=FALSE, from="2008-01-01", src='yahoo')
WTI <- getSymbols("WTI",auto.assign=FALSE, from="2008-01-01", src='yahoo')

## Estandarizar nombres de columnas
names(TRM)<-c('Open','High','Low','Close','Volume','Adjusted')
names(WTI)<-c('Open','High','Low','Close','Volume','Adjusted')

## Transformar bases de datos a Data Frames
TRM <- data.frame(Date=index(TRM), coredata(TRM))
WTI <- data.frame(Date=index(WTI), coredata(WTI))

Revisión y transformación de ambos DataSets

Revisión de posibles valores NA

colSums(is.na(TRM))
##     Date     Open     High      Low    Close   Volume Adjusted 
##        0       17       17       17       17       17       17
colSums(is.na(WTI))
##     Date     Open     High      Low    Close   Volume Adjusted 
##        0        0        0        0        0        0        0
filter(TRM, is.na(Open))
##          Date Open High Low Close Volume Adjusted
## 1  2010-01-01   NA   NA  NA    NA     NA       NA
## 2  2013-09-09   NA   NA  NA    NA     NA       NA
## 3  2013-09-10   NA   NA  NA    NA     NA       NA
## 4  2013-09-11   NA   NA  NA    NA     NA       NA
## 5  2013-09-12   NA   NA  NA    NA     NA       NA
## 6  2013-09-13   NA   NA  NA    NA     NA       NA
## 7  2013-09-16   NA   NA  NA    NA     NA       NA
## 8  2013-09-17   NA   NA  NA    NA     NA       NA
## 9  2013-09-18   NA   NA  NA    NA     NA       NA
## 10 2013-09-19   NA   NA  NA    NA     NA       NA
## 11 2013-09-20   NA   NA  NA    NA     NA       NA
## 12 2014-08-25   NA   NA  NA    NA     NA       NA
## 13 2014-08-26   NA   NA  NA    NA     NA       NA
## 14 2014-08-27   NA   NA  NA    NA     NA       NA
## 15 2014-08-28   NA   NA  NA    NA     NA       NA
## 16 2014-08-29   NA   NA  NA    NA     NA       NA
## 17 2019-05-22   NA   NA  NA    NA     NA       NA

Vemos que los datos del WTI estan completos, mientras que los de la TRM contienen algunos NA, al revisar en la web, estas fechas si tienen datos por lo cual se trata de un error en la BD, para efectos practicos de este ejercicio los reemplazaremos con el valor anterior, sin embargo, en el futuro seria necesario buscar una fuente adicional para cubrirlos y contar un base más precisa

TRM<-TRM %>% fill(Open, High, Low, Close,Volume, Adjusted)

Inspeccion de los data frames

str(TRM)
## 'data.frame':    3340 obs. of  7 variables:
##  $ Date    : Date, format: "2008-01-01" "2008-01-02" ...
##  $ Open    : num  1999 2009 1980 1987 1976 ...
##  $ High    : num  1999 2009 1987 2012 2010 ...
##  $ Low     : num  1999 1979 1980 1972 1976 ...
##  $ Close   : num  1999 1979 1987 1972 1976 ...
##  $ Volume  : num  0 0 0 0 0 0 0 0 0 0 ...
##  $ Adjusted: num  1999 1979 1987 1972 1976 ...
str(WTI)
## 'data.frame':    3222 obs. of  7 variables:
##  $ Date    : Date, format: "2008-01-02" "2008-01-03" ...
##  $ Open    : num  30.2 31.4 31.3 31.2 31.4 ...
##  $ High    : num  31.3 31.9 31.4 31.5 32.1 ...
##  $ Low     : num  30.2 30.9 30.7 30.9 31.4 ...
##  $ Close   : num  31.2 31.2 30.9 31.4 31.4 ...
##  $ Volume  : num  298400 349800 303700 939900 522900 ...
##  $ Adjusted: num  24.1 24.1 23.9 24.3 24.3 ...

Vemos que hay menos filas en WTI que en TRM, asi que revisaremos los valores faltantes en ambas

miss <- filter(TRM, !Date %in% WTI$Date)
tail(miss,20)
##           Date    Open    High     Low   Close Volume Adjusted
## 99  2018-11-22 3194.20 3194.20 3147.20 3190.00      0  3190.00
## 100 2018-12-05 3160.40 3174.20 3132.80 3172.00      0  3172.00
## 101 2018-12-25 3245.80 3293.50 3245.80 3285.00      0  3285.00
## 102 2019-01-01 3196.00 3245.00 3196.00 3246.00      0  3246.00
## 103 2019-01-21 3096.40 3128.80 3081.60 3121.00      0  3121.00
## 104 2019-02-18 3098.40 3129.70 3090.00 3131.00      0  3131.00
## 105 2019-04-19 3118.80 3156.00 3118.80 3153.00      0  3153.00
## 106 2019-05-27 3327.30 3357.40 3314.50 3327.30      0  3327.30
## 107 2019-07-04 3169.20 3194.10 3152.60 3208.80      0  3208.80
## 108 2019-09-02 3409.40 3448.40 3395.90 3439.00      0  3439.00
## 109 2019-11-28 3503.75 3519.32 3460.33 3503.75      0  3503.75
## 110 2019-12-25 3296.25 3298.23 3296.25 3296.25      0  3296.25
## 111 2020-01-01 3279.76 3279.76 3279.76 3279.76      0  3279.76
## 112 2020-01-20 3330.76 3330.76 3285.62 3330.76      0  3330.76
## 113 2020-02-17 3389.25 3394.89 3388.88 3388.00      0  3388.00
## 114 2020-04-10 3828.69 3828.69 3825.25 3827.00      0  3827.00
## 115 2020-05-25 3773.28 3776.71 3729.85 3773.28      0  3773.28
## 116 2020-07-03 3644.24 3648.46 3601.47 3644.24      0  3644.24
## 117 2020-09-07 3713.26 3713.26 3672.77 3713.26      0  3713.26
## 118 2020-10-19 3846.35 3847.49 3805.54 3846.35      0  3846.35

Vemos que en la base de WTI no hay valores para los festivos en Estados Unidos, mientras que en la de TRM si, por lo cual para efectos del analisis eliminaremos estos Datos para contar con bases comparables, espeicalmente de cara al analisis de correlacion

TRM<- filter(TRM, !Date %in% miss$Date)

Ahora, hacemos la misma revision para revision de manera opuesta

miss<- filter(WTI, !Date %in% TRM$Date)
tail(miss,20)
## [1] Date     Open     High     Low      Close    Volume   Adjusted
## <0 rows> (or 0-length row.names)

Por otro lado, vemos que en TRM estan todos los dias que estan en WTI, por lo cual podemos continuar sin realizar màs ajustes.

Ahora, ponemos columnas con el mes y el año para facilitar la elaboración de los graficos.

TRM$Month<- format(as.Date(TRM$Date), "%Y-%m")
TRM$Year<- format(as.Date(TRM$Date), "%Y")
WTI$Month<- format(as.Date(WTI$Date), "%Y-%m")
WTI$Year<- format(as.Date(WTI$Date), "%Y")

Grafico de la TRM y corrección de datos

fig <- plot_ly(TRM, x = ~Date, y = ~Close, type = 'scatter', mode = 'lines')
fig
errors<-filter(TRM, Low <1000)
errors
##          Date    Open    High      Low     Close Volume  Adjusted   Month
## 1  2013-07-12 1910.75 1910.75   3.6728    3.6728      0    3.6728 2013-07
## 2  2014-02-18    2.33 2028.00   2.3300 2028.0000      0 2028.0000 2014-02
## 3  2014-04-09 1932.00 1932.00  19.3100 1927.0000      0 1927.0000 2014-04
## 4  2014-07-21 1866.00 1866.00 185.0000 1856.0000      0 1856.0000 2014-07
## 5  2014-09-10 1890.60 1978.25 174.0000 1935.3000      0 1935.3000 2014-09
## 6  2014-09-22 1932.90 1996.00 196.0000 1932.1000      0 1932.1000 2014-09
## 7  2014-10-16 1981.10 2051.50  20.6900 2019.7000      0 2019.7000 2014-10
## 8  2014-11-28 2127.90 2127.90  22.0000 2126.5000      0 2126.5000 2014-11
## 9  2014-12-16 2361.40 2451.30  24.2500   24.2500      0   24.2500 2014-12
## 10 2015-01-30 2316.70 2378.10  24.3400 2378.1001      0 2378.1001 2015-01
## 11 2015-02-03 2392.10 2392.10  12.0000 2357.0000      0 2357.0000 2015-02
## 12 2015-02-17 2358.60 2358.60  24.1500   24.1500      0   24.1500 2015-02
## 13 2015-02-20 2393.60 2398.60  24.5000   24.5000      0   24.5000 2015-02
## 14 2015-03-06 2502.10 2575.00  25.0000 2575.0000      0 2575.0000 2015-03
## 15 2015-03-25 2503.00 2543.00 250.0000  250.0000      0  250.0000 2015-03
## 16 2015-04-10 2467.50 2516.00  25.0000 2515.0000      0 2515.0000 2015-04
## 17 2015-04-14 2449.70 2556.00  25.5900 2554.0000      0 2554.0000 2015-04
## 18 2015-06-01 2491.20 2542.00  25.4300 2542.0000      0 2542.0000 2015-06
## 19 2015-06-05 2565.50 2627.00  26.2200   26.2200      0   26.2200 2015-06
## 20 2015-08-03 2833.30 2917.00 281.0000 2917.0000      0 2917.0000 2015-08
## 21 2015-10-08 2873.50 2873.50 288.0000 2868.0000      0 2868.0000 2015-10
## 22 2015-10-26 2873.60 2927.00  29.2900 2927.0000      0 2927.0000 2015-10
## 23 2015-12-10 3234.70 3260.00 324.0000  324.0000      0  324.0000 2015-12
## 24 2015-12-15 3269.20 3320.00  33.1400   33.1400      0   33.1400 2015-12
## 25 2016-02-18 3375.90 3375.90  33.4000   33.4000      0   33.4000 2016-02
## 26 2016-04-15 2947.90 2997.00   2.0000 2997.0000      0 2997.0000 2016-04
## 27 2019-05-15 3267.70 3291.80  32.0000 3284.6001      0 3284.6001 2019-05
## 28 2019-10-22 3384.94 3404.96 343.0000 3447.0000      0 3447.0000 2019-10
##    Year
## 1  2013
## 2  2014
## 3  2014
## 4  2014
## 5  2014
## 6  2014
## 7  2014
## 8  2014
## 9  2014
## 10 2015
## 11 2015
## 12 2015
## 13 2015
## 14 2015
## 15 2015
## 16 2015
## 17 2015
## 18 2015
## 19 2015
## 20 2015
## 21 2015
## 22 2015
## 23 2015
## 24 2015
## 25 2016
## 26 2016
## 27 2019
## 28 2019

Como podemos ver en la grafica hay algunos datos atipicos y despues de consultar otras fuentes de datos se puede concluir que son datos erroneos en la BD de Yahoo, por lo cual será necesario ajustarlos. Asi mismo, Vemos que el error es solo en las columnas Low, Close y Adjusted, dado que son pocos datos no nos alterara mucho el analisis y los podemos ajustar a partir de los datos que estan correctos. Asi que teemplazaremos los valores errones con el precio de apertura el dia.

TRM <- TRM %>% mutate(Close= ifelse(Close < 1000, Open, Close)) %>% 
      mutate(Low= ifelse(Low < 1000, Close, Low)) %>% 
      mutate(Adjusted= ifelse(Adjusted < 1000, Open, Adjusted)) 

Elaboración de los gráficos necesarios.

Creación de funcion para graficar

graficar<-function(data,periodo,tipo){
   fig <- plot_ly(data, x = ~Date, y = ~Close, type = 'scatter', mode = 'lines',name = 'Close')
   fig <-fig %>% add_trace(y = ~Low, name = 'Low', line = list(color = I('red'), width = 1))
   fig <-fig %>% add_trace(y = ~High, name = 'High', line = list(color = I('green'), width = 1))
   fig <- fig %>% layout(title = paste("Serie ", tipo,  periodo),
                         xaxis = list(title = "Fecha"),
                         yaxis = list (title = "Valor"))
   
   fig
}

Gráfica Serie TRM Diaria

graficar(TRM,'Diaria','TRM')

Para las gráficas mensuales y anuales se calcularon los valores de la siguiente manera: - El valor de Cierre es el ultimo valor de Cierre Registrado en el periodio. - El valor Minimo es el menor valor durante todo el periodo. - El valor Máximo es el mayor valor durante todo el periodo.

Observacion: no trabajamos con el promedio aritmetico, sino con el ultimo valor del cierre del mes, dado que el promedio es un buen estimador del comportamiento de variables con ciertas distribuciones como la normal, pero al no conocer aún la dsitribucion de probabilidad de esta variable es mejor no utilizarlo.

Gráfica Serie TRM Mensual

temp<-group_by(TRM,Month) 
temp<-summarize(temp, last(Close),max(Close), min(Close))
names(temp)<-c('Date','Close','High','Low')
graficar(temp,'Semanal','TRM')

Gráfica Serie TRM Anual

temp<-group_by(TRM,Year) 
temp<-summarize(temp, last(Close),max(Close), min(Close))
names(temp)<-c('Date','Close','High','Low')
graficar(temp,'Mensual','TRM')

Gráfica Serie WTI Diaria

graficar(WTI,'Diaria','WTI')

Gráfica Serie WTI Mensual

temp<-group_by(WTI,Month) 
temp<-summarize(temp, last(Close),max(Close), min(Close))
names(temp)<-c('Date','Close','High','Low')
graficar(temp,'Mensual','WTI')

Gráfica Serie WTI Anual

temp<-group_by(WTI,Year) 
temp<-summarize(temp, last(Close),max(Close), min(Close))
names(temp)<-c('Date','Close','High','Low')
graficar(temp,'Mensual','WTI')

BoxPlots TRM Mensual

fig <- plot_ly(TRM, y = ~Close, color = ~Month, type = "box",boxpoints = FALSE)
fig <- fig %>% layout(title = "BoxPlot por meses TRM (precio Cierre)",
                      xaxis = list(title = "Fecha"),
                      yaxis = list (title = "Valor $"),showlegend = FALSE)

fig

BoxPlots WTI Mensual

fig <- plot_ly(WTI, y = ~Close, color = ~Month, type = "box",boxpoints = FALSE)
fig <- fig %>% layout(title = "BoxPlot por meses WTI(precio Cierre)",
                      xaxis = list(title = "Fecha"),
                      yaxis = list (title = "Valor USD"),showlegend = FALSE)

fig

Analisis de Correlacion entre el precio del Petroleo y la TRM

Para el analisis de correlacion uniremos ambos DataSets

DataSet<- merge(TRM,WTI,by.x='Date',by.y='Date',all=TRUE)
DataSet<-select(DataSet, Date, Close.x, Close.y,Year.x)
names(DataSet)<-c('Date','TRM','WTI','Year')

Elaboraremos primero un scatter plot para ver graficamente la relacion entre las variables y el comportamiento con el paso de los años

p <- ggplot(DataSet, aes( WTI, TRM ) ) +
      geom_point(aes( colour = Year )) +
      geom_smooth(method = 'loess' )

fig <- ggplotly(p)
fig <- fig %>% layout(title = "TRM vs WTI",showlegend = FALSE)
fig

Al observar la grafica anterior podemos notar que las dos variables estan estrechamente. Sin embargo, esta relacion no es lineal, sino posiblemente exponencial. Para analizar de una manera exploratoria inicial la relacion entre estas dos variables, a pesar de su relacion aparentemente exponencial, transformaremos el WTI en su logaritmo para asi lograr aproximar la relacion a lineal.

DataSet$LogWTI<-log(DataSet$WTI)

p <- ggplot(DataSet, aes( LogWTI, TRM ) ) +
      geom_point(aes( colour = Year )) +
      geom_smooth(aes( group = 1 ))

fig <- ggplotly(p)
fig <- fig %>% layout(title = "TRM vs WTI",showlegend = FALSE)

fig
cor(DataSet$TRM,DataSet$WTI,use = 'complete.obs')
## [1] -0.7093624
cor(DataSet$TRM,DataSet$LogWTI,use = 'complete.obs')
## [1] -0.8596149

A partir del resultado anterior podemos concluir que las dos variables estan relacionadas fuertemente de manera inversa y aproximadamente exponencial, ya que obtuvimos un coeficiente de correlacion de -0.85 al trabajar con el log del WTI.

Tabla de valores Maximo, minimo y promedio por año e indicador.

ResumenTRM<-group_by(TRM,Year) 
ResumenTRM<-summarize(ResumenTRM, mean(Close),max(Close), min(Close))
names(ResumenTRM)<-c('Año','Promedio','Maximo','Minimo')
knitr::kable(ResumenTRM, format.args = list(scientific = FALSE))
Año Promedio Maximo Minimo
2008 1938.913 2362.80 1625.70
2009 2136.865 2598.00 1810.00
2010 1888.405 2023.00 1755.60
2011 1838.203 1969.30 1726.90
2012 1789.363 1908.00 1715.50
2013 1870.116 1949.00 1758.00
2014 1990.015 2427.00 1557.00
2015 2734.427 3327.00 2323.00
2016 3024.786 3414.00 2806.00
2017 2938.570 3094.25 2796.70
2018 2948.148 3293.50 2681.40
2019 3274.419 3510.86 3038.90
2020 3712.618 4174.75 3204.05

Analisis y Conclusiones

Conclusiones

A pesar de que se observa una fuerte correlacion entre el valor de la TRM y el valor del petroleto, tambien se puede concluir que el precio del petroleo no es suficiente para explicar completamente el valor de la TRM, ya que vemos valores muy diferentes para la TRM entre los años 2020 vs 2016 y 2019 vs 2015 a pesar que entre estos pares de años el valor del petroleo se comportó de manera simular. Eso implicaria que, aunque el precio del petroleo impacta fuertemente el valor de la TRM, hay otras variables que también están afectando su valor y que deben ser incluidas y analizadas en un modelo que pretenda estimar el valor de la TRM en el futuro. Por ejemplo se podría buscar aislar la influencia del precio del petroleo de la tendencia natural de la TRM a subir(ya que se observa a lo largo de casi toda la serie) o incluir variables relacionados con la balanza comercial, crecimiento del PIB, comportamiento de las bolsas de USA, etc.

Al analizar las series de la TRM y del WTI, podemos observar que el tema del coronavirus impactó ambas variables, en la TRM causando un gran crecimiento en marzo y en el precio del petroleo una caida enttre enero y marzo. Pero a apartir de Julio, la TRM parece haber recuperado su tendencia normal aunque en un nivel mas alto, lo que podría ser la nueva normalidad para esta variable en un entorno de pandemia.

Punto 2

Lectura de los datos

Empresas<-read.csv('BASE.txt',sep = ';')
Monedas <-read.csv('Monedas.txt',sep = ';')

Revision de la estructura de la informacion

str(Empresas)
## 'data.frame':    3383 obs. of  4 variables:
##  $ Fecha  : Factor w/ 365 levels "01/01/2017","01/02/2017",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ Empresa: Factor w/ 4 levels "Empesa B","Empresa A",..: 2 2 2 2 2 2 2 2 2 2 ...
##  $ Moneda : Factor w/ 3 levels "EURO","PESO",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ Ingreso: num  0.000137 0.001744 0.126475 0.000118 0 ...
str(Monedas)
## 'data.frame':    365 obs. of  3 variables:
##  $ FECHA: Factor w/ 365 levels "01/01/2017","01/02/2017",..: 1 13 25 37 49 61 73 85 97 109 ...
##  $ USD  : num  3001 3001 2981 2965 2941 ...
##  $ EURO : num  3137 3140 3096 3095 3088 ...

Inicialmente, vemos que la fecha quedo como un factor, por lo cual la converteriemos a formato fecha para facilitar su manipulacion

Empresas$Fecha<-dmy(Empresas$Fecha)
Monedas$Fecha<-dmy(Monedas$FECHA)
Monedas$FECHA<-NULL

Ahora revisaremos el estado de los datos numericos

tapply(Empresas$Empresa, Empresas$Moneda, summary)
## $EURO
##  Empesa B Empresa A Empresa C  EmpresaC 
##       365       365       365         0 
## 
## $PESO
##  Empesa B Empresa A Empresa C  EmpresaC 
##       365       365       365        98 
## 
## $USD
##  Empesa B Empresa A Empresa C  EmpresaC 
##       365       365       365         0

Vemos que tenemos algunos registros de una empresa llamada “EmpresaC” en la Base datos, y dado que la base datos solo debe contener informacion de 3 empresas, y que los registros de las otras 3 empresas estan completos(365 dias), asumiremos que estos datos de la “EmpresaC” se deben a un error en la generacion de la informacion y los eliminaremos.

Empresas<-filter(Empresas,Empresa != 'EmpresaC')

temp<-group_by(Empresas,Empresa,Moneda)
summarize(temp, mean(Ingreso),max(Ingreso),min(Ingreso))
## # A tibble: 9 x 5
## # Groups:   Empresa [3]
##   Empresa   Moneda `mean(Ingreso)` `max(Ingreso)` `min(Ingreso)`
##   <fct>     <fct>            <dbl>          <dbl>          <dbl>
## 1 Empesa B  EURO          0.00291          0.285         -0.252 
## 2 Empesa B  PESO        897.            5199.        -16183.    
## 3 Empesa B  USD           0.0431           1.81          -1.89  
## 4 Empresa A EURO          0.00158          0.126         -0.108 
## 5 Empresa A PESO        196.            1893.         -5784.    
## 6 Empresa A USD           0.0270           1.42          -1.38  
## 7 Empresa C EURO          0.000956         0.0819        -0.0666
## 8 Empresa C PESO        385.            2302.        -10708.    
## 9 Empresa C USD           0.0170           0.654         -0.665

Los valores numericos aparentemente se ven correctamente leidos y sin datos atipicos

Ahora realizaremos un Join para contar con toda la información necesaria en el mismo DataFrame

df <-merge(x = Empresas, y = Monedas, by = "Fecha", all.x = TRUE)

df <- df %>% mutate(IngresoPesos= case_when(Moneda == 'USD' ~ Ingreso*USD,
                                            Moneda == 'EURO' ~ Ingreso*EURO,
                                            Moneda == 'PESO' ~ Ingreso))

## Revisar que no hayan quedado NAs
colSums(is.na(df))
##        Fecha      Empresa       Moneda      Ingreso          USD 
##            0            0            0            0            0 
##         EURO IngresoPesos 
##            0            0

2.1 Sub total de ingreso por empresa donde la monera de origen es USD

En este numeral entiendo que se desean analizar unicamente las inversiones en USD

temp<-filter(df,Moneda == 'USD')
temp<-group_by(temp,Empresa)
temp<-data.frame(summarise(temp, IngresosUD =sum(Ingreso)))
knitr::kable(temp, format.args = list(scientific = FALSE))
Empresa IngresosUD
Empesa B 15.723750
Empresa A 9.864023
Empresa C 6.221502

2.2 Ingreso total por moneda de la empresa A

temp<-filter(df,Empresa == 'Empresa A')
temp<-group_by(temp,Moneda)
temp<-data.frame(summarise(temp, IngresosUD =sum(Ingreso)))
knitr::kable(temp, format.args = list(scientific = FALSE))
Moneda IngresosUD
EURO 0.5750223
PESO 71668.0695237
USD 9.8640228

2.3 Empresa con Menor ingreso durante el primer semestre del 2017

temp<-filter(df,Fecha <=dmy('30/06/2017'))
temp<-group_by(temp,Empresa)
temp<- data.frame(summarise(temp, Ingresos =sum(IngresoPesos)))
temp<-temp[order(temp$Ingresos),]
temp<-temp[1,]
knitr::kable(temp, format.args = list(scientific = FALSE))
Empresa Ingresos
2 Empresa A 55525.66

2.4 Ingresos para todos los trimestres de 2017 en pesos para cada trimestre

temp<-df
temp$Trimestre<-quarter(temp$Fecha)
temp<-group_by(temp,Empresa,Trimestre)
temp<- data.frame(summarise(temp, Ingresos =sum(IngresoPesos)))
knitr::kable(temp, format.args = list(scientific = FALSE))
Empresa Trimestre Ingresos
Empesa B 1 118815.80
Empesa B 2 81849.51
Empesa B 3 82643.15
Empesa B 4 92439.95
Empresa A 1 39602.50
Empresa A 2 15923.16
Empresa A 3 24539.74
Empresa A 4 21610.99
Empresa C 1 49835.64
Empresa C 2 35070.19
Empresa C 3 31980.99
Empresa C 4 42715.54

2.5 Inreso acumulado del año 2017 en pesos por empresa y moneda

temp<-group_by(df,Empresa,Moneda)
temp<-data.frame(summarise(temp, Ingresos =sum(IngresoPesos)))
knitr::kable(temp, format.args = list(scientific = FALSE))
Empresa Moneda Ingresos
Empesa B EURO 3160.443
Empesa B PESO 327243.321
Empesa B USD 45344.650
Empresa A EURO 1697.570
Empresa A PESO 71668.070
Empresa A USD 28310.747
Empresa C EURO 1037.168
Empresa C PESO 140589.724
Empresa C USD 17975.466

Analisis

data<-df
data$Mes<- format(as.Date(data$Fecha), "%Y-%m")
data<-select(data,Empresa,Moneda,Mes,IngresoPesos)
data<-group_by(data,Empresa,Moneda,Mes)
data<-data.frame(summarise(data, Ingresos =sum(IngresoPesos)))

p <- ggplot(data, aes(x=Mes, y=Ingresos,group=Moneda)) + geom_line(aes(color=Moneda))
p + facet_grid(rows = vars(Empresa))+ geom_smooth(method = "lm",se = FALSE,linetype = "dashed", size=0.2)

A partir del grafico anterior podemos concluir lo siguiente:

  • Los ingresos que se tuvieron en 2017 en las 3 empresas por las inversiones en Euros son bastante bajas comparadas con los ingresos en las otras dos monedas, sin embargo seria necesario conocer la cantidad invertidad para analizar si estas inversiones en Euros estan siendo rentables o no.
  • Respecto a la inversiones en USD se observa que los retornos son bastante variables y con una marcada tendencia decreciente mes a mes. Esto a pesar de que el Dolar tuvo un tendencia a la alza a lo largo del año, lo cual podria indicar que los resultados de estas empresas no estan siendo menos positivos con el paso de los meses. Sin embargo, a pesar de la tendencia a la baja, el resultado neto anual es positivo.
  • Respecto a las inversiones en pesos, vemos que son los que generan la mayor cantida de ingresos, aunque habria que analizar la cantidad de dinero invertido para saber que tan rentable estan siendo. Por otro lado, se observa una tendencia estable, con excepcion de una reduccion muy marcada en Julio, la cual se presentó en todas las empresas, lo cual podria indicador que en este mes se presento un hecho puntual en el pais. Pero, tambien podria ser una señal de que las 3 empresas pertenecen al mismo setor, y de ser este el caso valdria la pena explorar la opcion de diversificar, invirtiendo en otro sector, para que todo el portafolio no se vea afectado de la misma manera ante hechos que impacten fuertemente un sector en particular.